package com.ruoyi.record.domain;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.mybatisplus.core.BaseEntity;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import java.util.Date;
import java.util.List;

/**
 * 职称竞聘 record_compete
 * 
 * @author ruoyi
 * @date 2024-05-09
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("record_compete")
public class RecordCompete extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 竞聘id */
    @TableId(type = IdType.AUTO)
    private Long competeId;

    /** 竞聘岗位档次 */
    @Excel(name = "竞聘岗位档次", dictType = "basic_post_level", comboDict = "basic_post_level")
    private String competeLevel;

    @TableField(exist = false)
    private Long deptId;

    /** 所在科室 */
    @Excel(name = "所在科室", type = Excel.Type.EXPORT)
    @TableField(exist = false)
    private String deptName;

    /** 身份证号 */
    @Excel(name = "身份证号")
    @TableField(exist = false)
    private String idCard;

    /** 姓名 */
    @Excel(name = "姓名")
    @TableField(exist = false)
    private String userName;

    /** 性别 */
    @Excel(name = "性别", dictType = "sys_user_sex", type = Excel.Type.EXPORT)
    @TableField(exist = false)
    private String sex;

    /** 出生年月 */
    @Excel(name = "出生年月", type = Excel.Type.EXPORT)
    @TableField(exist = false)
    private String birthday;

    /** 参加工作时间 */
    @Excel(name = "参加工作时间", type = Excel.Type.EXPORT)
    @TableField(exist = false)
    private String workTime;

    /** 政治面貌 */
    @TableField(exist = false)
    @Excel(name = "政治面貌", dictType = "basic_user_political", type = Excel.Type.EXPORT)
    private String politicalType;

    /** 现职务资格 */
    @Excel(name = "现职务资格", type = Excel.Type.EXPORT)
    private String postName;

    /** 现资格等级 */
    @Excel(name = "现资格等级", dictType = "basic_post_level", type = Excel.Type.EXPORT)
    private String obtainLevel;

    /** 现资格及取得时间 */
    @Excel(name = "现资格取得时间", type = Excel.Type.EXPORT)
    private String obtainTime;

    /** 现聘任等级 */
    @Excel(name = "现聘任等级", dictType = "basic_post_level", type = Excel.Type.EXPORT)
    private String postLevel;

    /** 现资格聘任时间 */
    @Excel(name = "现资格聘任时间", type = Excel.Type.EXPORT)
    private String engageTime;

    /** 学历 */
    @TableField(exist = false)
    @Excel(name = "学历", dictType = "basic_educate_name", type = Excel.Type.EXPORT)
    private String educateType;

    /** 毕业院校 */
    @TableField(exist = false)
    @Excel(name = "毕业院校", type = Excel.Type.EXPORT)
    private String schoolName;

    /** 所学专业 */
    @NotBlank(message = "所学专业不能为空")
    @Excel(name = "所学专业", dictType = "major_type", type = Excel.Type.EXPORT)
    private String educateMajor;

    /** 学位 */
    @TableField(exist = false)
    @Excel(name = "学位", dictType = "basic_educate_degree", type = Excel.Type.EXPORT)
    private String educateDegree;

    /** 学术兼职 */
    @Excel(name = "学术兼职")
    private String plurality;

    /** 是否担任过带教老师或教学秘书及时间 */
    @NotBlank(message = "是否担任过带教老师或教学秘书及时间")
    @Excel(name = "是否担任过带教老师或教学秘书及时间", dictType = "sys_yes_no", comboDict = "sys_yes_no")
    private String isTeacher;

    /** 是否担任过带教老师或教学秘书及时间 */
    @NotBlank(message = "是否参加过支农、第一村医等活动及时间")
    @Excel(name = "是否参加过支农、第一村医等活动及时间", dictType = "sys_yes_no", comboDict = "sys_yes_no")
    private String isFarmer;

    /** 继续教育及继续医学教育学分是否达到合格标准 */
    @NotBlank(message = "继续教育及继续医学教育学分是否达到合格标准")
    @Excel(name = "继续教育及继续医学教育学分是否达到合格标准", dictType = "sys_yes_no", comboDict = "sys_yes_no")
    private String isStandard;

    /** 是否发生过医疗事故 */
    @NotBlank(message = "是否发生过医疗事故")
    @Excel(name = "是否发生过医疗事故", dictType = "sys_yes_no", comboDict = "sys_yes_no")
    private String isFailure;

    /** 提交状态 */
    private String submitFlag;

    /** 提交时间 */
    private Date submitTime;

    /** 继续医学教育情况 */
    private String score1;

    /** 学历得分 */
    private String score2;

    /** 资历得分 */
    private String score3;

    /** 硬件分 */
    private String score4;

    /** 考核情况 */
    private String score5;

    /** 考核得分 */
    private String score6;

    /** 兼职 */
    private String score7;

    /** 荣誉 */
    private String score8;

    /** 荣誉得分 */
    private String score9;

    /** 科教分值 */
    private String score10;

    /** 村医 */
    private String score11;

    /** 带教老师 */
    private String score12;

    /** 软件总分 */
    private String score13;

    /** 医务科扣分 */
    private String score14;

    /** 纪检监察室扣分 */
    private String score15;

    /** 医务科考核得分 */
    private String score16;

    /** 结果 */
    @Excel(name = "结果", type = Excel.Type.EXPORT)
    private String verifyFlag;

    /** 通过时间 */
    @Excel(name = "通过时间")
    private String verifyTime;

    /** 审核意见 */
    private String verifyRemark;

    /** 删除标识（0正常2删除） */
    @TableLogic
    private String delFlag;

    /** 申请内容信息 */
    @TableField(exist = false)
    private List<RecordCompeteInfo1> info1List;

    /** 申请内容信息 */
    @TableField(exist = false)
    private List<RecordCompeteInfo2> info2List;

    /** 申请内容信息 */
    @TableField(exist = false)
    private List<RecordCompeteInfo3> info3List;

}
